Telegram Group Search
📰 Еженедельный дайджест

Собрали для вас материалы, которые вы могли пропустить.

Почему переход с C# на F# может быть выгоден для бизнеса
Компания Ada Beat делится опытом перехода с C# на F#, отмечая, что это приводит к упрощению кода, снижению затрат на поддержку и ускорению вывода продуктов на рынок.

Extension members в C# 14
В блоге разработчиков .NET рассказали о новой фиче — extension members, расширяющей привычные extension methods. Теперь разработчики могут добавлять к существующим типам не только методы, но и свойства — как экземплярные, так и статические.

Почему стартап Tracebit выбрал C#
В блоге Microsoft CTO стартапа Tracebit, Сэм Кокс, делится причинами выбора C# для создания B2B SaaS-продукта в области безопасности.

Новый выпуск подкаста .NET Rocks
Ведущие обсудили извечный вопрос: как найти баланс между архитектурным дизайном и непосредственным написанием кода.

7 архитектурных паттернов, которые должен знать каждый программист

Почему база данных тормозит ваше приложение и как это исправить

🐸Библиотека шарписта #свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
В чем разница между Convert.ToString() и ToString()?

👾 — Convert.ToString() обрабатывает значения null, а ToString() — нет
👍 — ToString() выводит данные в соответствии с предоставленным форматом
🥰 — Convert.ToString() обрабатывает только значения null
⚡️ — ToString() обрабатывает значения null, а Convert.ToString() — нет

🐸Библиотека задач по C#
Please open Telegram to view this post
VIEW IN TELEGRAM
🤨 Подборка вакансий для шарпистов

Senior C# Developer — до 400 000 ₽, Удалёнка.

Middle Full-stack разработчик (C#/TypeScript) — от 200 000 ₽, Удалёнка.

C#/.NET-разработчик — Удалёнка (Нижний Новгород).

Backend-разработчик (.NET) — Удалёнка.

Senior Developer — до 600 000 ₽, Удалёнка.

Бустер — Удалённо (в любом городе мира).

➡️ Еще больше топовых вакансий — в нашем канале С# Jobs
Please open Telegram to view this post
VIEW IN TELEGRAM
💻 Компактный гид по основам языка

Нашли для вас шпаргалку, которая охватывает все основные темы языка. Код можно скопировать и поиграться в своей среде разработки.

➡️ Поделитесь с младшими коллегами

🐸Библиотека шарписта #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
Грин-флаги в вакансиях: 10 признаков хорошего работодателя

Пока одни сосредоточены на том, как произвести впечатление на работодателя, опытные соискатели внимательно читают вакансии и ищут признаки того, что перед ними достойная компания.

В статье подробно о том, как распознать хорошего работодателя ещё до собеседования, просто внимательно вчитавшись в текст вакансии.

📎 Читать статью

🐸Библиотека шарписта
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ Как проверить, что WeakReference «отпустила» объект

В .NET слабые ссылки позволяют ссылаться на объект, не препятствуя сборщику мусора его удалить. Это полезно в кэшах, пулах объектов и других случаях, где важно избегать утечек памяти.

Но как проверить, что объект удаляется?

Можно использовать пример:
class MyObject
{
~MyObject()
{
Console.WriteLine("MyObject был удалён сборщиком мусора");
}
}

class Program
{
static void Main()
{
WeakReference weakRef = test();

GC.Collect();
GC.WaitForPendingFinalizers();
GC.Collect();

Console.WriteLine("После сборки мусора: " + (weakRef.IsAlive ? "Жив" : "Удалён"));
}

static WeakReference test() {
var obj = new MyObject();
WeakReference weakRef = new WeakReference(obj);
Console.WriteLine("До удаления ссылки: " + (weakRef.IsAlive ? "Жив" : "Удалён"));
return weakRef;
}
}


IsAlive показывает, жив ли объект.

GC.Collect() + GC.WaitForPendingFinalizers() заставляют сборщик мусора немедленно освободить неиспользуемые объекты.

• Деструктор ~MyObject() позволяет наглядно убедиться, что объект удалён.

Метод IsAlive может показывать, что объект жив даже после GC.Collect(), если объект ещё не финализирован или находится в очереди на финализацию.

Для надёжности можно использовать TryGetTarget вместо IsAlive.

🐸Библиотека шарписта #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
📋 Чек-лист по написанию LINQ запросов

Независимо от того, работаете ли вы с коллекциями, базами данных или XML, LINQ запросы требуют правильной структуры и оптимизации для достижения наилучших результатов.

В этом чек-листе собраны основные моменты, которые помогут вам писать чистые, читаемые и эффективные LINQ запросы.

Понимание источника данных

Убедитесь, что данные поддерживают LINQ, например, IEnumerable<T> или IQueryable<T>.

Определение цели запроса

Чётко определите входные данные, что с ними будет в процессе и какие ожидаются данные на выходе.

Синтаксис запроса

Перед написанием запросов стоит определить какой синтаксис будет использоваться.

• Синтаксис как метод:
var result = collection.Where(x => x.Age > 30).OrderBy(x => x.Name).ToList();


• Запрос в синтаксисе:
var result = from x in collection
where x.Age > 30
orderby x.Name
select x;


Оптимизация производительности

Используйте IQueryable<T> для внешних источников данных (например, базы данных), чтобы запрос выполнялся на сервере.

Отложенная и немедленная загрузка

Отложенная загрузка полезна, когда вам нужно выполнить запрос, но выполнение следует отложить до тех пор, пока это не потребуется.

Немедленная загрузка используется, когда вы хотите сразу получить результат выполнения запроса или когда данные нужно обработать немедленно.

Агрегация и группировка

Используйте функции агрегации, такие как Sum(), Average(), Max(), и группировку через GroupBy().

Сложные запросы

Работайте с несколькими коллекциями через операторы join, union, intersect и except.
var combined = collection1.Join(collection2, 
c1 => c1.Id,
c2 => c2.Id,
(c1, c2) => new { c1.Name, c2.Price });


Использование let для промежуточных вычислений

Упрощайте запросы с помощью промежуточных переменных:
var result = from x in collection
let temp = x.Age * 2
where temp > 40
select new { x.Name, temp };


Обработка пустых коллекций

Используйте DefaultIfEmpty() для предотвращения ошибок при работе с пустыми коллекциями.

Производительность и асинхронность

Используйте асинхронные методы, такие как ToListAsync(), для работы с асинхронными источниками данных.

🐸Библиотека шарписта #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🚨 Смешные новости про IT теперь в одном канале

Мы запустили @hahacker_news — наш новый юмористический IT-канал.

Туда будем постить лучшие шутки до 19го мая, которые вы присылали на конкурс.

👉 @hahacker_news — голосование уже идёт, переходите, читайте, угарайте и оставляйте реакции
💻 Быстрый CheatSheet от VisualStudio

Если вы хотите работать быстрее и эффективнее, изучение горячих клавиш — один из лучших способов. В любой момент в Visual Studio вы можете быстро перейти на официальный ресурс с подробным справочником.

Как это сделать

1.
Перейдите в поиск — Ctrl + Q

2.
Начните вводить «справочник>» или «keyboard» и перейдите по первой подсказке.

Там вы найдёте подсказки по навигации, редактированию, отладке и другим важным операциям.

🐸Библиотека шарписта #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🔄 Апдейт Visual Studio 2022

Microsoft представила Visual Studio 2022 версии 17.14, сделав акцент на интеграции искусственного интеллекта в процесс разработки.

Ключевым новшеством стала функция Agent Mode (в режиме предварительного просмотра), позволяющая разработчикам взаимодействовать с IDE на естественном языке для выполнения сложных задач, таких как исправление ошибок, генерация команд терминала и анализ ошибок выполнения.

В области отладки и диагностики добавлены возможности Live Preview и Hot Reload в режиме дизайна, новая отладка для .NET MAUI с использованием движка Mono, улучшенная отладка LINQ-выражений и выявление выделений нулевой длины массивов в .NET Allocation Tool.

Microsoft также объявила о переходе на ежемесячный цикл выпуска обновлений для Visual Studio 2022, начиная с этой версии.

➡️ Подробнее об обновлении

🐸Библиотека шарписта #свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
🎮 Эмодзи клавиатура у сеньора

Вашему коллеге подсунули эмодзи клавиатуру вместо обыкновенной! Попробуйте расшифровать какой код он написал.

💬 Пишите свои догадки в комментариях👇

🐸Библиотека шарписта #междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
📰 Еженедельный дайджест

Обновите картину мира: новости, аналитика, находки и инструменты.

Апдейт Visual Studio 2022
Новая версия 17.14 сделала акцент на ИИ (снова).

— Microsoft сообщает, что количество активных пользователей Visual Studio и Visual Studio Code достигло 50 миллионов в месяц

Поддержка мультиарендности в EF Core
Разработчик анонсировал, что в Wolverine 4 появится полноценная поддержка мультиарендности для EF Core.

Это позволит разработчикам использовать существующие возможности Wolverine, такие как транзакционный inbox/outbox и middleware, с EF Core, нацеливаясь на отдельные базы данных для каждого арендатора

Грин-флаги в вакансиях: 10 признаков хорошего работодателя

Смешные новости про IT теперь в одном канале

🐸Библиотека шарписта #свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
Что выведет код?

👾 — False
👍 — True
🥰 — Compiler-time error
⚡️ — Runtime error

Библиотека задач по C#
🇨🇳 Подборка вакансий для шарпистов

Разработчик .net (Middle C#) — Удалёнка

.NET Developer — Удалёнка

C#/.NET-разработчик — Удалёнка

C# Developer — Гибрид (Москва)

Разработчик C# — Гибрид (Москва)

Бустер — Удалённо (в любом городе мира).

➡️ Еще больше топовых вакансий — в нашем канале С# Jobs
Please open Telegram to view this post
VIEW IN TELEGRAM
🎮 Код из книги: Оптимизация запросов с использованием индексов в PostgreSQL и MySQL

Проблема: при проектировании баз данных часто возникает необходимость ускорить выполнение запросов, особенно при работе с большими объемами данных. Неправильное использование или отсутствие индексов может привести к значительным задержкам в обработке запросов, что негативно сказывается на производительности приложений.

Решение: в книге "Database Design and Modeling with PostgreSQL and MySQL" авторы подробно рассматривают методы оптимизации запросов с помощью индексов. Они объясняют, как правильно создавать и использовать индексы для ускорения выполнения запросов, а также как анализировать планы выполнения запросов для выявления узких мест.

Пример создания индекса и анализа плана выполнения запроса в PostgreSQL:
-- Создание индекса на столбец email в таблице users
CREATE INDEX idx_users_email ON users(email);

-- Анализ плана выполнения запроса
EXPLAIN ANALYZE
SELECT * FROM users WHERE email = '[email protected]';


В этом примере создается индекс на столбец email таблицы users, что позволяет значительно ускорить выполнение запроса поиска пользователя по email. Команда EXPLAIN ANALYZE используется для анализа плана выполнения запроса и оценки его эффективности.

Преимущества:


— Использование индексов позволяет существенно сократить время выполнения запросов, особенно при работе с большими таблицами.
— Анализ планов выполнения запросов помогает выявить и устранить узкие места в производительности базы данных.
— Правильное использование индексов способствует более эффективному использованию ресурсов сервера и улучшению отклика приложений.

➡️ Лучшее из мира IT-книг — у нас в @progbook
Please open Telegram to view this post
VIEW IN TELEGRAM
🚀 Обновление .NET Aspire 9.3

Microsoft показали обновление для .NET Aspire. Кратко разберём что изменилось.

В новой версии под номером 9.3 улучшена производительность за счёт оптимизации сборщика мусора и компилятора. Расширена интеграция с Azure, обновлены SDK и упрощена аутентификация.

Улучшена поддержка Hot Reload в Visual Studio для быстрой отладки. Повышена безопасность с обновлёнными криптобиблиотеками.

Также улучшена работа с контейнерами Docker и Kubernetes и добавлены новые API для файлов и асинхронных операций.

➡️ Подробнее об обновлении

🐸Библиотека шарписта #свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
💻 Инструмент недели: палитра команд

Microsoft представила в составе PowerToys инструмент — Command Palette. Этот функционал призван упростить и ускорить выполнение повседневных задач на Windows, предоставляя быстрый доступ к командам и приложениям через единый удобный интерфейс.

Command Palette — это командная панель в стиле известных редакторов кода (например, Visual Studio Code), которая позволяет быстро искать и запускать команды, приложения и функции системы.

Вместо привычного поиска в меню Пуск или множества кликов — достаточно открыть палитру, начать вводить нужную команду, и инструмент покажет релевантные варианты.

➡️ Попробовать палитру команд

🐸Библиотека шарписта #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
2025/05/21 16:46:30
Back to Top
HTML Embed Code: